Applications and/or controls may act as clients of local and/or remote data sources. For example, the clients may display data from the data sources, such as in the form of lists. As used herein, a list is an ordered sequence of items, and a client can be an application and/or control. Some data sources, such as local data sources, can respond synchronously to requests for data, with the data source passing the requested data to the requester before the requester resumes execution. Such responses to data requests typically take less time than some response time threshold, such as a threshold that is low enough that a presentation of the response can appear to be in real time with the corresponding request. For example, such responses may take on the order of tens of milliseconds or less. Other data sources, such as remote data sources, may respond asynchronously, with the data requester resuming execution after the request and receiving the requested data from the data source at a later time. Such responses to data requests typically take more time than the response time threshold discussed above.
Some data sources are implemented as read-only data sources. However, in other implementations, clients may be allowed to submit edits to be made to the source data.